EL FUTURO DE AOP
Definición de AOP
En la actualidad (año 2024) AOP (Aspect Oriented Programming) necesita más desarrollo. Su estatus como paradigma, se encuentra en debate debido a que su implementación es centrada en lenguajes del paradigma de programación orientada a objetos (POO). Además, no es posible negar la influencia que tienen las ideas de POO en AOP. La capacidad de crear módulos de crosscutting-concerns por medio de aspectos no es muy diferente de la encapsulación de funcionalidades usando clases. Así mismo, los aspectos se comportan como clases y en su definición actual no es posible encontrar diferencia alguna. Sin duda, algo necesario para el futuro de AOP es su completa definición como un paradigma en propia regla o ser declarado como una extensión del paradigma POO.
Alcance de AOP
AOP necesita definir un alcance de lo que es apropiado capturar y modificar. En un paralelismo con el lenguaje de programación C, el poder capturar cualquier aspecto del programa y modificarlo en cualquier instante es comparable con los punteros void*
que son conocidos por su gran capacidad de manipulación de memoria y facilidad para causar daño. Tanto poder solo puede llevar a la perdida de control e incrementa la complejidad en la construcción y ejecución de las aplicaciones.
Un lenguaje propio
Sin duda el paso mas importante para un paradigma es la creación de un lenguaje que soporte sus funcionalidades. AOP no tiene un lenguaje que lo soporte de forma nativa lo cual incrementa la complejidad de su implementación. Una vez se tenga una clara definición de AOP el siguiente paso es construir un lenguaje echo para AOP. Esto le dará un impulso importante y mayor cobertura en los proyectos de software que se están desarrollando.
Producción o desarrollo
AOP puede implementarse en ambientes de desarrollo y producción, sin embargo, el uso de preferencia de AOP es desarrollo pues es en este ambiente en donde sus características y capacidades brillan. En cambio, en producción su uso puede tener algo de polémica. En primer lugar la premisa de AOP es la no modificación del código base al agregar alguna funcionalidad que tiene todo el sentido en desarrollo pero en producción definitivamente modifica el propósito original de la aplicación. Si el comportamiento base de la aplicación en producción no es el expresado por el código base ¿realmente no se modifica el código original?
Necesidad de AOP
AOP resuelve un problema muy común (crosscutting-concerns) que actualmente no tiene una solución definitiva. Y con el paso del tiempo los nuevos desarrolladores al enfrentarse a este problema encontrarán en AOP una solución muy atractiva que no tiene el soporte indicado. Esto puede impulsar la investigación en AOP y mejoras necesarias para su estandarización.
En un dia no muy lejano
En un posible futuro en donde AOP sea un paradigma en toda regla y gracias a sus capacidades teóricas, se podría tener aplicaciones de múltiples contextos de ejecución. Es decir aplicaciones que según su entorno de ejecución se comportan de una forma diferente. En la actualidad las aplicaciones corren de la misma forma siempre. No cambian nunca sin importar cuantas veces se ejecuten ni en dónde. Asumiendo la existencia un ambiente universal de ejecución AOP, las aplicaciones que cumplan ciertas características podrían funcionar completamente diferente al aplicarse aspectos en ellas transformando el comportamiento original. Para este tipo de aplicaciones, su código base seria como el ADN (de un organismo) que al estar expuesto a cierto tipo de ambientes daría lugar a la creación de una nueva aplicación o una extensión de esta. Incluso podríamos hablar de un paradigma de evolución de programas dentro de AOP que evolucionarían como lo hacen los seres vivos en la naturaleza que al ser expuestos a ciertas interacciones con el entorno, se adaptan y desarrollan nuevas capacidades. Es como imaginar un sistema operativo con unas aplicaciones de base y con el uso de ellas, el sistema desarrolla nuevas aplicaciones o extensiones para cubrir las necesidades del usuario como por ejemplo que de un editor de texto, uno de imágenes y alguna aplicación que se conecta internet desarrollar un navegador web dedicado. Cuando algo es tan potente en su base teórica la imaginación no tiene límites.
El regreso de AOP
La teoría de la computación existió antes de la existencia de las maquinas que se podían llamar computadoras. Fue con la investigación y la imaginación de grandes mentes que se avanzo hasta un punto en donde la teoría terminaría transformando la realidad. Es posible que AOP pase por una situación similar. Con la masificación en el uso de las computadoras, cada vez hay mas programadores y cada vez más personas se enfrentan a los problemas que ayuda a solucionar AOP. Es posible que solo sea cuestión de tiempo para que los esfuerzos en la implementación adecuada de AOP regresen.